import { DefaultStage } from "../default-stage";
import { Character, CharacterController } from './character';
import { PhysicsManager } from './physics-manager';
import { Landscape } from './landscape';
import { Sky } from './sky';
import { Asset } from './asset';
import { PBRMaterial } from "@babylonjs/core/Materials/PBR/pbrMaterial";


class InitializeComponent {
    public static async initialize(stage: DefaultStage): Promise<void> {
        Asset.initialize(stage);
        Sky.initialize(stage);
        await PhysicsManager.initialize(stage);
        Landscape.initialize(stage);
        await CharacterController.CreateAsync(stage);
    }

}

export { InitializeComponent };
